介绍
BroadcastReceiver:广播接收者,很形象,广播发送,类比生活中的广播,有能力听得到的都可以介绍到这个信息,然后在大脑中反映。对应到Android中就是SendBroadcast和onReceive。
广播之间信息的传递是通过Intent对象来传递的,Intent调用分为显示调用的隐式调用两种。
使用方法
广播接收者
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class MyReceiver extends BroadcastReceiver {
public static final String HELLOACTION = "com.example.mraz.learnbroadcastreceiver.android.intent.action.HELLO";
public MyReceiver() { }
@Override public void onReceive(Context context, Intent intent) {
String str = intent.getStringExtra("message"); System.out.println("on Reveiver" + str); } }
|
静态注册
AndroidManifest.xml
1 2 3 4 5 6 7 8 9
| <receiver android:name=".MyReceiver" android:enabled="true" android:exported="true" > <intent-filter> <action android:name="com.example.mraz.learnbroadcastreceiver.android.intent.action.HELLO"/> </intent-filter> </receiver>
|
动态注册
1 2 3
| IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(MyReceiver.HELLOACTION); registerReceiver(myReceiver, intentFilter);
|
1
| unregisterReceiver(myReceiver);
|
结果
Demo界面
静态注册方式下:
发送广播->取消注册 ->发送广播
动态注册方式下:
发送广播->注册广播->发送广播-> 取消注册 -> 发送广播